新型的gRPC协议好用吗?WebSocket已成历史?VLESS+gRPC+TLS ,HTTP/2的升级版(可以套用CDN),Xray的gRPC协议搭建! – v2cross 您所在的位置:网站首页 grpc 对比 新型的gRPC协议好用吗?WebSocket已成历史?VLESS+gRPC+TLS ,HTTP/2的升级版(可以套用CDN),Xray的gRPC协议搭建! – v2cross

新型的gRPC协议好用吗?WebSocket已成历史?VLESS+gRPC+TLS ,HTTP/2的升级版(可以套用CDN),Xray的gRPC协议搭建! – v2cross

2023-03-27 09:34| 来源: 网络整理| 查看: 265

文章导读目录

 

前言

2021年的三月份,Xray-core发布了V1.4.0的版本,作者提出了WebSocket 0-RTT & gRPC Transport。

对于 WebSocket 0-RTT,就是在原有 Websocket 协议上更进一步的优化以及提升,我们在服务端配置不变的情况下,客户端仅做小小修改,就可体验新特性带来的速度提升。也就是在客户端的 Websocket 路径后面增加一串字符串而已。

其实更多人关注的是 gRPC 协议。从那天起,gRPC 作为 Xray 的一种新型传输协议和大伙儿见了面,目前已经过去3个多月了,gRPC 经过各位大佬们的不断测试,目前也是逐渐完善了。

什么是 Xray 的 gRPC

gRPC 就是谷歌版的 RPC,服务端与客户端高效通讯的框架。

基于HTTP/2的标准设计,也就是说,你可以认为 gRPC 是 HTTP/2 的进阶版,h2 的所有特性,它都有。

另外,使用 gRPC 协议,客户端可以充分利用高级流和链接功能,那说成人话就是,有助于节省带宽、降低 TCP 的链接次数,从而减少 CPU 的占用、以及电池的损耗。

看到这些优点,不难发现,gRPC 在移动的设备上使用,肯定是最佳的。

以上内容引用自 “ 无主界(idleleo) ” 博客文章

准备工作

1、VPS 一台,重置好主流的操作系统。本视频使用 Debian 系统进行演示。

2、域名一个,做好相应的解析

(若是需要套用 CDN,请 自行托管域名到 CDN,并在 Cloudflare 里面的 “网络” 里面开启 gRPC 选项)

gRPC 不支持指定 Host。请在出站代理地址中填写 正确的域名 ,或在 (x)tlsSettings 中填写 ServerName,否则无法连接。

gRPC 不支持回落到其他服务。

gRPC 服务存在被主动探测的风险。建议使用 Caddy 或 Nginx 等反向代理工具,通过 Path 前置分流

3、Nginx 的版本,必须大于 1.13.10+ ,这个视频中有提到!

搭建 Xray 的 gRPC 系统更新并安装相关组件 CentOS 命令 yum update -y yum install epel-release -y yum install -y curl tar socat wget yum install -y nginx systemctl start nginx

CentOS 执行上面的更新命令以后,最好是手动重启一下自己的 VPS,一定确保自己的 VPS 成功重启。

重要:请自行关闭防火墙

firewall-cmd --state # 查看防火墙状态 systemctl stop firewalld.service # 停止防火墙 systemctl disable firewalld.service # 禁止防火墙开机自启 Debian 命令

添加 最新 Nginx 源( SSH 工具打开 VPS 如下文件:/etc/apt/sources.list ,在后面添加如下源,根据自己的系统选择相应的源 )

#Debian 7.0: deb http://nginx.org/packages/debian/ wheezy nginx deb-src http://nginx.org/packages/debian/ wheezy nginx   #Debian 8.0: deb http://nginx.org/packages/debian/ jessie nginx deb-src http://nginx.org/packages/debian/ jessie nginx   #Debian 9.0: deb http://nginx.org/packages/debian/ stretch nginx deb-src http://nginx.org/packages/debian/ stretch nginx

然后执行下面的命令:

wget http://nginx.org/keys/nginx_signing.key && apt-key add nginx_signing.key apt update -y apt install -y nginx apt install -y curl tar socat wget systemctl start nginx 验证 Nginx 是否安装成功

1、在 VPS 输入 nginx -V ,查看 Nginx 的版本,确定版本大于 1.13.10+ 。不然不支持 gRPC。

2、在浏览器输入你的 VPS IP,得到如下界面,证明 Nginx 安装成功!(以下是的 Nginx 的截图,或许和你的不一样,只要能看到 Nginx 的欢迎界面就好。)

安装官方 Xray 服务 bash -c "$(curl -L https://github.com/XTLS/Xray-install/raw/main/install-release.sh)" @ install -u root 申请SSL证书

因为Acme脚本更新 Please update your account with an email address first.,目前需要申请一个账号才可以申请,所以原先的命令做了下面的更新,更改下面的域名以及邮箱为你自己的。具体更多的最新 ACME 脚本申请证书请 点击这里

curl https://get.acme.sh | sh systemctl stop nginx ~/.acme.sh/acme.sh --register-account -m [email protected].com ~/.acme.sh/acme.sh --issue -d test.bozai1.xyz --standalone ~/.acme.sh/acme.sh --installcert -d test.bozai1.xyz --key-file /root/private.key --fullchain-file /root/cert.crt Nginx 配置文件

此配置文件的 location 字段,可以用来配置宝塔面板。

若是 CentOS,请直接替换/etc/nginx/nginx.conf配置文件中的 server 字段。注意 { } 符号

若是 Debian,请直接在 /etc/nginx/sites-enabled/default (若是找不到该文件,就是 /etc/nginx/conf.d/default.conf  )中,删除原有配置文件,并粘贴下面配置文件。

server { listen 80; listen 443 ssl http2; server_name test.bozai1.xyz; # 主机头,请更改为你绑定的域名 index index.html; # 默认页面 root /usr/share/nginx/html; # 网页根目录路径 ssl_certificate /root/cert.crt; # 证书路径 ssl_certificate_key /root/private.key; # 密钥路径 ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384; # 在 location 后填写 /{你的 ServiceName} location /test.bozai1.xyz { if ($content_type !~ "application/grpc") { return 404; } client_max_body_size 0; client_body_timeout 1071906480m; grpc_read_timeout 1071906480m; grpc_pass grpc://127.0.0.1:2002; } }

配置完毕以后,请开启或是重启 Nginx 服务 systemctl restart nginx ,若是不出现报错,证明 Nginx 配置文件无误。

Xray 配置文件

在 VPS 目录找到如下文件:/usr/local/etc/xray/config.json ,贴入以下代码

{ "log": { "loglevel": "warning" }, "inbounds": [ { "port": 2002, "listen": "127.0.0.1", "protocol": "vless", "settings": { "clients": [ { "id": "5a5a3a75-d739-46d3-9773-c5139410a4a5" // 填写你的 UUID } ], "decryption": "none" }, "streamSettings": { "network": "grpc", "grpcSettings": { "serviceName": "test.bozai1.xyz" // 填写你的 ServiceName } } } ], "outbounds": [ { "tag": "direct", "protocol": "freedom", "settings": {} }, { "tag": "blocked", "protocol": "blackhole", "settings": {} } ], "routing": { "domainStrategy": "AsIs", "rules": [ { "type": "field", "ip": [ "geoip:private" ], "outboundTag": "blocked" } ] } }

注意:更改 Xray 配置以后,一定需要记得重启 Xray 以及 Nginx 服务。 systemctl restart xray  重启 ,查看 Xray是否报错(运行状态) systemctl status xray

下载伪装网站及部署

默认的网站主程序文件夹在 /usr/share/nginx/html/ ,大家可以自行的替换里面的任何东西(整站程序)

rm -rf /usr/share/nginx/html/* cd /usr/share/nginx/html/ wget https://github.com/V2RaySSR/Trojan/raw/master/web.zip unzip web.zip systemctl restart nginx 支持 gRPC 的 Qv2ray 客户端

Windwos 版本的 V2rayNG,全线支持 gRPC。

而目前我只找到了支持 Windows 64 位的 支持 gRPC 的 Qv2ray 客户端,下载地址:点击下载

(若是,大家找到支持 gRPC 的 MacOS 版本的 Qv2ray,请告诉我。 )

安卓手机请继续使用 V2rayNG,而 IOS 手机则可以使用 小火箭。

 

卸载 Nginx

因为,只有版本号大于 1.13.10+ 的 Nginx 才可以支持到 gRPC,所以,列出卸载 Nginx 的命令,供大家使用。 以下为 Nginx 的卸载命令:

apt-get --purge remove nginx -y # 卸载删除 nginx apt-get autoremove -y # 罗列出与nginx相关的软件自动移除全部不使用的软件包 dpkg --get-selections|grep nginx # 罗列出与nginx相关的软件 apt-get --purge remove nginx -y # 删除查询出与nginx有关的软件 apt-get --purge remove nginx-common -y # 删除查询出与nginx有关的软件 apt-get --purge remove nginx-core -y # 删除查询出与nginx有关的软件 后记

总体来说,gRPC作为一种新型的协议,还需要大家的验证!到底是否好用,或是到底有没有速度的提升?这个都需要大家自己的尝试!就像很多人觉得 Trojan 比 Xray 好用,有些人觉得 V2ray 比 Trojan 好用一样!



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

      专题文章
        CopyRight 2018-2019 实验室设备网 版权所有